<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

<script>
    // var list = [2, 8, 4, 6, 5, 7, 9, 3, 1];

    // function fn(item, index, array) {
    //     console.log(item);
    // }

    // for (var i = 0; i < list.length; i++) {
    //     var item = list[i];  // 循环的当前元素
    //     var index = i;     // 循环的当前下标
    //     var array = list;   // 原数组
    //     fn(item, index, array);
    // }

    // 模拟封装forEach
    // function myEach(list, fn) {
    //     // var list = [2, 8, 4, 6, 5, 7, 9, 3, 1];

    //     // function fn(item, index, array) {
    //     //     console.log(item);
    //     // }

    //     for (var i = 0; i < list.length; i++) {
    //         var item = list[i];  // 循环的当前元素
    //         var index = i;     // 循环的当前下标
    //         var array = list;   // 原数组
    //         fn(item, index, array);
    //     }
    // }


    var arr = [5, 4, 3, 2, 1];

    // forEach  map  filter some every   基本功能 遍历数组 每次循环时执行传入的回调函数

    // forEach 只是单纯的遍历



    // arr.forEach(function (item, index, array) {  //item循环的当前元素 , index 下标 , array原数组
    //     console.log(item, index, array);
    // })


    // map  遍历数组 每次循环时执行传入的回调函数, 接收回调函数的返回值 放到新数组中
    // var list = arr.map(function (item, index, array) {  //item循环的当前元素 , index 下标 , array原数组
    //     console.log(item, index, array);
    //     return item + 1;
    // })
    // console.log(list);

    // filter  遍历数组 每次循环时执行传入的回调函数, 回调函数返回一个条件,把满足条件的元素筛选出来 放到新数组中
    // var list = arr.filter(function (item, index, array) {  //item循环的当前元素 , index 下标 , array原数组
    //     console.log(item, index, array, item >= 3);
    //     return item >= 3;
    // })
    // console.log(list);

    // some    遍历数组 每次循环时执行传入的回调函数,, 回调函数返回一个条件 只有一个元素满足条件则返回true
    // 判断数组中是否存在 满足条件的元素 (只要有一个满足即可)

    // var flag = arr.some(function (item, index, array) {  //item循环的当前元素 , index 下标 , array原数组
    //     console.log(item, index, array, item >= 3);
    //     return item >= 3;
    // })
    // console.log(flag);


    // every    遍历数组 每次循环时执行传入的回调函数, 回调函数返回一个条件 所有元素都满足条件则返回true,有一个不满足 则返回false
    // 判断数组中的元素是否都满足条件 (只要有一个不满足则返回false)

    var flag = arr.every(function (item, index, array) {  //item循环的当前元素 , index 下标 , array原数组
        console.log(item, index, array, item >= 1);
        return item >= 1;
    })
    console.log(flag);




</script>

</html>